Cette page indique comment créer un jeu de couleurs pour gEdit.
Lorsque vous écrivez un code source, vous avez plusieurs styles de texte : les variables, les types de fonction/variable… gEdit peut colorer ces styles de texte, pour le plus grand plaisir de nos yeux délicats. Un jeu de couleur prend la forme d'un fichier xml, attribuant des effets de texte à un style de texte déjà défini.
Un programme existe, badschemer, pour créer des jeux de couleurs de façon plus confortable. Il est aussi possible d'y aller à la main pour faire quelque chose de plus personnalisé, et c'est ce que nous allons voir.
Voici un exemple de contenu d'un jeu de couleurs vide :
<?xml version="1.0" encoding="UTF-8"?> <style-scheme id="exemple" _name="Exemple" version="1.0"> <author>Auteur</author> <_description>Mettez une description du thème (ce qu'il évoque, l'origine d'un tel thème...).</_description> <!-- On place ici les différentes informations sur le style --> </style-scheme>
Quelques explications sur les balises utilisées :
<?xml version="1.0" encoding="UTF-8"?>
Cette ligne est la première ligne de quasiment tous les fichiers en xml. Il indique qu'on utilise la version 1.0 du xml avec un encodage de caractères en utf-8.
<style-scheme id="exemple" _name="Exemple" version="1.0">
<author>Auteur</author>
<_description>Mettez une description du jeu de couleurs (ce qu'il évoque, l'origine d'un tel thème...).</_description>
<!-- On place ici les différentes informations sur le style -->
Pour éviter de faire des fichiers deux fois plus lourds que nécessaire, n'en abusez pas non plus, sauf si vous débutez.
Toutes vos prochaines balises seront à placer entre </_description> et </style-scheme>.
Vous pouvez appliquer différents effets à du texte, notamment le colorer. Lorsqu'un paramètre vous demande une couleur, vous pouvez seulement indiquer une valeur hexadécimale, par exemple :
foreground="#FFFFFF"
Mais il faudra alors rentrer manuellement chacune des couleurs. Et si vous comptez appliquer la même couleur à plusieurs styles ? Et si vous voulez changer d'un coup la couleur de ces mêmes styles ? Une méthode plus rapide, et aussi plus claire, est de donner des noms à des couleurs.
Par convention on met ces indications de couleur tout de suite après la balise </_description>.
Voici un exemple de couleurs que vous pouvez définir :
<color name="gris" value="#bbbbbb"/> <color name="blanc" value="#eeeeee"/> <color name="jaune" value="#fce94f"/> <color name="kaki" value="#617200"/>
Ainsi vous définissez vos propres valeurs de gris, de blanc, et ainsi de suite. Si vous trouvez qu'une certaine valeur de jaune est mal appropriée par rapport aux autres couleurs, vous avez juste à la modifier
Ça tombe bien, gEdit possède un greffon pour sélectionner une couleur et l'insérer dans le document.
Voir la section des greffons de gEdit.
Voila le plus intéressant : les styles ! Ce que vous allez colorer, afficher en gras… selon vos envies. Un style se définit comme tel :
<style name="nomdustyle" parametre="valeur" autreparametre="autrevaleur"/>
La liste des styles personnalisables est longue et aucune documentation claire n'existe à ce jour. Vous trouverez donc ci-dessous une liste non-exhaustive des styles utilisables.
Voici la liste des paramètres disponibles :
Pour ces quatre paramètres, il faut donner une valeur booléenne : true pour afficher cet effet, false dans le cas contraire. Par définition, ces paramètres sont réglés sur false. Cependant, il se peut que deux styles se chevauchent, et qu'un texte s'affiche en gras alors que vous le voulez sans l'effet de gras quoi qu'il arrive. Dans ce cas-là, annoncez explicitement le paramètre en false.
Ces trois derniers paramètres demandent une couleur. Vous pouvez indiquer une valeur hexadécimale : #000000 , ou bien un nom donné à une couleur (voir ci-dessus la balise couleur).
Un style est défini au paramètre name. Cette partie liste tous les styles communs.
gEdit est un éditeur de texte avant tout destiné à programmer, de ce fait il peut formater du code, et ça passe aussi par les styles. Les styles que vous allez utiliser sont définis dans des fichiers bien spéciaux appelés "définitions de langage". Ces fichiers sont localisés normalement dans le dossier : /usr/share/gtksourceview-2.0/language-specs/ , sinon entrez :
find / -name def.lang
Ce dossier contient des définitions de langage pour de nombreux langages, vous devez sûrement voir dans le dossier de nombreux fichiers .lang. Tous ces langages font appel à des styles qui ont été définis dans le fichier def.lang de ce dossier, ce qui en fait le fichier le plus important d'entre tous les autres. Ensuite, chaque langage définit ses propres styles en indiquant à quelle partie du texte appliquer quel style de def.lang. Ce qui veut dire que vous pouvez définir des styles pour chacun des langages en y allant au cas-par-cas. Mais comme c'est long et lourd, il vaut mieux définir des styles par défaut, et indiquer des styles bonus après ça. Pour utiliser le style d'un langage, il faut indiquer son style et son fichier. Un style par défaut est défini comme ceci :
<style name="def:style" parametre="valeur" autreparametre="autrevaleur"/>
Parce que les styles par défaut sont dans le fichier def.lang
Mais si vous voulez définir un style pour le C uniquement, il faut d'abord voir quels styles sont définis dans le fichier c.lang : ouvrez-le et cherchez les lignes du genre :
<styles>
<style id="comment" _name="Comment" map-to="def:comment"/>
<style id="printf" _name="printf Conversion" map-to="def:special-char"/>
...
</styles>
Les noms des styles sont dans le paramètre id: si vous voulez formater le style comment (voir plus bas), il vous faudra l'appeler ainsi :
<style name="c:comment" parametre="valeur" autreparametre="autrevaleur"/>
Le paramètre _name indique un nom plus complet pour le style.
Le paramètre map-to dit quel style appeler pour le formatage si aucun style n'a été précisé. Si vous ne précisez pas de style pour comment, on ira prendre le style comment par défaut.
Il n'existe aucune page sur la documentation française d'Ubuntu expliquant en détail comment marchent ces fichiers, des liens vers des documentations anglaises sont postées à la fin de cette page. Avis aux traducteurs…
Autre information, l'organisation des styles pourrait changer lors du passage à la version 3 de gEdit. Ce qui n'est pas pour tout de suite
Bien, passons à ces styles par défaut.
Vous trouverez ci-dessous tous les noms des styles, tous précédés du préfixe def: , comme ça ceux qui lisent la doc un peu vite peuvent tout de suite copier/coller les noms des styles
Certains styles, s'ils ne sont pas définis, adoptent les mêmes propriétés qu'un autre style. On peut former ainsi des "familles de styles" qui sont ici représentées par des décalages sur la droite. À titre d'exemple, si le style def:shebang n'est pas défini, comme on peut dire que def:shebang est le "style fils" de def:comment, alors le style def:shebang sera identique à def:comment. Si par contre def:comment n'est pas défini, n'ayant pas de "style parent" alors def:comment s'affichera comme du texte.
Petit rappel de comment définir un de ces styles :
<style name="def:comment" parametre="valeur" autreparametre="autrevaleur"/>
Si vous cherchez des indications supplémentaires ou si le texte vous semble flou, n'oubliez pas de contacter le(s) contributeur(s).
Contributeurs : Zarmakuizz.